package vip.xiaonuo.supplier.modular.warehouse.storesstream.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.servlet.http.HttpServletResponse;
import vip.xiaonuo.supplier.modular.warehouse.stocks.param.SupplierStocksExportParam;
import vip.xiaonuo.supplier.modular.warehouse.storesstream.entity.SupplierStoresStream;
import vip.xiaonuo.supplier.modular.warehouse.storesstream.param.*;

import java.io.IOException;
import java.util.List;

/**
 * 库存流水Service接口
 *
 * @author Mr.wu
 * @date  2025/03/19 09:49
 **/
public interface SupplierStoresStreamService extends IService<SupplierStoresStream> {

    /**
     * 获取库存流水分页
     *
     * @author Mr.wu
     * @date  2025/03/19 09:49
     */
    Page<SupplierStoresStream> page(SupplierStoresStreamPageParam supplierStoresStreamPageParam);

    /**
     * 添加库存流水
     *
     * @author Mr.wu
     * @date  2025/03/19 09:49
     */
    void add(SupplierStoresStreamAddParam supplierStoresStreamAddParam);

    /**
     * 编辑库存流水
     *
     * @author Mr.wu
     * @date  2025/03/19 09:49
     */
    void edit(SupplierStoresStreamEditParam supplierStoresStreamEditParam);

    /**
     * 删除库存流水
     *
     * @author Mr.wu
     * @date  2025/03/19 09:49
     */
    void delete(List<SupplierStoresStreamIdParam> supplierStoresStreamIdParamList);

    /**
     * 获取库存流水详情
     *
     * @author Mr.wu
     * @date  2025/03/19 09:49
     */
    SupplierStoresStream detail(SupplierStoresStreamIdParam supplierStoresStreamIdParam);

    /**
     * 获取库存流水详情
     *
     * @author Mr.wu
     * @date  2025/03/19 09:49
     **/
    SupplierStoresStream queryEntity(String id);

    /**
     * 导出库存流水
     *
     * @author Mr.wu
     * @date  2024/11/08 09:12
     **/
    void exportStream(SupplierStoresStreamExportParam supplierStoresStreamExportParam, HttpServletResponse response) throws IOException;
}
